package com.atom.module.coroutine.ext;

//        import com.atom.module.coroutine.core.CommonKt;
//        import com.atom.module.coroutine.core.Job;
//        import com.atom.module.coroutine.scope.CoroutineScope;
//        import com.atom.module.coroutine.utils.LogKt;
//        import java.util.concurrent.TimeUnit;
//        import kotlin.Metadata;
//        import kotlin.ResultKt;
//        import kotlin.Unit;
//        import kotlin.coroutines.Continuation;
//        import kotlin.coroutines.CoroutineContext;
//        import kotlin.coroutines.intrinsics.IntrinsicsKt;
//        import kotlin.coroutines.jvm.internal.Boxing;
//        import kotlin.jvm.functions.Function2;
//        import kotlin.jvm.internal.Intrinsics;
//        import org.jetbrains.annotations.NotNull;
//        import org.jetbrains.annotations.Nullable;
//
//        @Metadata(
//                mv = {1, 5, 1},
//                k = 2,
//                xi = 48,
//                d1 = {"\u0000\u0014\n\u0000\n\u0002\u0010\u0002\n\u0000\n\u0002\u0010\u0011\n\u0002\u0010\u000e\n\u0002\b\u0002\u001a\u0019\u0010\u0000\u001a\u00020\u00012\f\u0010\u0002\u001a\b\u0012\u0004\u0012\u00020\u00040\u0003¢\u0006\u0002\u0010\u0005¨\u0006\u0006"},
//                d2 = {"main", "", "args", "", "", "([Ljava/lang/String;)V", "test-coroutine_debug"}
//        )
//        public final class BlockingSampleKt {
//            public static final void main(@NotNull String[] args) {
//                Intrinsics.checkNotNullParameter(args, "args");
//                CommonKt.runBlocking$default((CoroutineContext)null, (Function2)(new Function2((Continuation)null) {
//                    int label;
//                    // $FF: synthetic field
//                    private Object L$0;
//
//                    @Nullable
//                    public final Object invokeSuspend(@NotNull Object $result) {
//                        Object var5 = IntrinsicsKt.getCOROUTINE_SUSPENDED();
//                        CoroutineScope $this$runBlocking;
//                        Object[] var4;
//                        switch (this.label) {
//                            case 0:
//                                ResultKt.throwOnFailure($result); // 开始执行 先抛出入参 的 异常如果存在的化
//                                $this$runBlocking = (CoroutineScope)this.L$0;// 将L$0 强转为协程作用域 本身就是
//                                Object[] var3 = new Object[]{Boxing.boxInt(1)};// 创建一个object数组 对象为integer==1 的包装类
//                                LogKt.log($this$runBlocking, var3);// 对应 BlockingSample.kt的11 行
//                                // 创建一个Job对象
//                                Job job = CommonKt.launch$default($this$runBlocking, (CoroutineContext)null, (Function2)(new Function2((Continuation)null) {
//                                    int label;
//                                    // $FF: synthetic field
//                                    private Object L$0;
//
//                                    @Nullable
//                                    public final Object invokeSuspend(@NotNull Object $result) {
//                                        Object var4 = IntrinsicsKt.getCOROUTINE_SUSPENDED();
//                                        CoroutineScope $this$launch;
//                                        Object[] var3;
//                                        switch (this.label) {
//                                            case 0:
//                                                ResultKt.throwOnFailure($result); // 开始执行 先抛出入参 的 异常如果存在的化
//                                                $this$launch = (CoroutineScope)this.L$0; // 将L$0 强转为协程作用域 本身就是
//                                                var3 = new Object[]{Boxing.boxInt(1)} ; // 创建一个object数组 对象为integer==1 的包装类
//                                                LogKt.log($this$launch, var3); // 对应 BlockingSample.kt的13 行
//                                                Continuation var10002 = (Continuation)this;
//                                                this.L$0 = $this$launch;
//                                                this.label = 1;
//                                                // 本质是executor.schedule 返回 ScheduledFuture对象
//                                                if (CommonKt.delay$default(1000L, (TimeUnit)null, var10002, 2, (Object)null) == var4) {
//                                                    return var4;
//                                                }
//                                                break;
//                                            case 1:
//                                                $this$launch = (CoroutineScope)this.L$0;
//                                                ResultKt.throwOnFailure($result);
//                                                break;
//                                            default:
//                                                throw new IllegalStateException("call to 'resume' before 'invoke' with coroutine");
//                                        }
//
//                                        var3 = new Object[]{Boxing.boxInt(2)};
//                                        LogKt.log($this$launch, var3);
//                                        return Unit.INSTANCE;
//                                    }
//
//                                    @NotNull
//                                    public final Continuation create(@Nullable Object value, @NotNull Continuation $completion) {
//                                        Function2 var3 = new <anonymous constructor>($completion);
//                                        var3.L$0 = value;
//                                        return (Continuation)var3;
//                                    }
//
//                                    @Nullable
//                                    public final Object invoke(@NotNull CoroutineScope p1, @Nullable Continuation p2) {
//                                        return ((<undefinedtype>)this.create(p1, p2)).invokeSuspend(Unit.INSTANCE);
//                                    }
//
//                                    // $FF: synthetic method
//                                    // $FF: bridge method
//                                    public Object invoke(Object p1, Object p2) {
//                                        return this.invoke((CoroutineScope)p1, (Continuation)p2);
//                                    }
//                                }), 1, (Object)null);
//                                var4 = new Object[]{Boxing.boxInt(2)};
//                                LogKt.log($this$runBlocking, var4);// 对应 BlockingSample.kt的17 行
//                                Continuation var10001 = (Continuation)this;
//                                this.L$0 = $this$runBlocking;
//                                this.label = 1;// 设置标识
//                                if (job.join(var10001) == var5) { // 获取当前的job状态 如果是挂起 则返回
//                                    return var5;
//                                }
//                                break;
//                            case 1:
//                                $this$runBlocking = (CoroutineScope)this.L$0;
//                                ResultKt.throwOnFailure($result);
//                                break;
//                            default:
//                                throw new IllegalStateException("call to 'resume' before 'invoke' with coroutine");
//                        }
//
//                        var4 = new Object[]{Boxing.boxInt(3)};
//                        LogKt.log($this$runBlocking, var4);// 对应 BlockingSample.kt的19 行
//                        return Unit.INSTANCE;
//                    }
//
//                    @NotNull
//                    public final Continuation create(@Nullable Object value, @NotNull Continuation $completion) {
//                        Function2 var3 = new <anonymous constructor>($completion);
//                        var3.L$0 = value;
//                        return (Continuation)var3;
//                    }
//
//                    @Nullable
//                    public final Object invoke(@NotNull CoroutineScope p1, @Nullable Continuation p2) {
//                        return ((<undefinedtype>)this.create(p1, p2)).invokeSuspend(Unit.INSTANCE);
//                    }
//
//                    // $FF: synthetic method
//                    // $FF: bridge method
//                    public Object invoke(Object p1, Object p2) {
//                        return this.invoke((CoroutineScope)p1, (Continuation)p2);
//                    }
//                }), 1, (Object)null);
//            }
//        }
